<?php
namespace SisGG\FinalBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* @ORM\Entity
*/
class Image {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=255)
* @Assert\NotBlank
*/
protected $name;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $path;
    /**
     * @Assert\File(maxSize="1M", mimeTypes={"image/gif", "image/jpeg", "image/png"})
     * @Assert\NotBlank
     */
    protected $file;
public function getAbsolutePath()
{
return null === $this->path ? null : $this->getUploadRootDir().'/'.$this->path;
}
public function getWebPath()
{
return null === $this->path ? null : $this->getUploadDir().'/'.$this->path;
}
public function getUploadRootDir()
{
// la ruta absoluta al directorio dónde se deben guardar los documentos cargados
return '/var/www/SisGG/src/SisGG/FinalBundle/Resources/'.$this->getUploadDir();
}
protected function getUploadDir()
{
// se libra del __DIR__ para no desviarse al mostrar ‘doc/image‘ en la vista.
return 'images';
}
public function upload()
{
// la propiedad ’file’ puede estar vacía si el campo no es obligatorio
if (null === $this->file) {
return;
}
// aquí utilizamos el nombre de archivo original pero lo deberías
// desinfectar por lo menos para evitar cualquier problema de seguridad
// ’move’ toma el directorio y nombre de archivo destino al cual trasladarlo
$this->file->move($this->getUploadRootDir(), $this->file->getClientOriginalName());
// fija la propiedad ’path’ al nombre de archivo donde se guardó el archivo
$this->setPath($this->file->getClientOriginalName());
// limpia la propiedad ’file’ ya que no la necesitas más
$this->file = null;
}

public function __construct() {
}
public function __toString() {
    $this->path;
}
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Logo
     */
    public function setName($name)
    {
        $this->name = $name;
    
        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set path
     *
     * @param string $path
     * @return Logo
     */
    public function setPath($path)
    {
        $this->path = $path;
    
        return $this;
    }

    /**
     * Get path
     *
     * @return string 
     */
    public function getPath()
    {
        return $this->path;
    }
}